package com.zenithmind.task.pojo.dto;

import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 任务附件DTO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
public class TaskAttachmentDTO {

    /**
     * 附件ID
     */
    private String id;

    /**
     * 任务ID
     */
    @NotBlank(message = "任务ID不能为空")
    private String taskId;

    /**
     * 文件名
     */
    @NotBlank(message = "文件名不能为空")
    private String fileName;

    /**
     * 原始文件名
     */
    private String originalFileName;

    /**
     * 文件路径
     */
    private String filePath;

    /**
     * 文件大小（字节）
     */
    private Long fileSize;

    /**
     * 文件类型
     */
    private String fileType;

    /**
     * MIME类型
     */
    private String mimeType;

    /**
     * 文件扩展名
     */
    private String fileExtension;

    /**
     * 文件MD5值
     */
    private String fileMd5;

    /**
     * 附件描述
     */
    private String description;

    /**
     * 上传者ID
     */
    private String uploaderId;

    /**
     * 上传者名称
     */
    private String uploaderName;

    /**
     * 上传时间
     */
    private LocalDateTime uploadTime;

    /**
     * 下载次数
     */
    private Integer downloadCount;

    /**
     * 是否为图片
     */
    private Integer isImage;

    /**
     * 缩略图路径
     */
    private String thumbnailPath;

    /**
     * 预览URL
     */
    private String previewUrl;

    /**
     * 下载URL
     */
    private String downloadUrl;

    /**
     * 附件状态：1-正常，0-已删除
     */
    private Integer status;

    /**
     * 排序权重
     */
    private Integer sortOrder;

    /**
     * 备注
     */
    private String remark;
}
